package com.ccx.library.module.task.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.ccx.library.function.annotation.TimeAt;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * 每隔5秒执行一次：5****?
        *
        *每隔1分钟执行一次：01***?
        *
        *每天23点执行一次：0 0 23**?
        *
        *每天凌晨1点执行一次：0 0 1**?
        *
        *每月1号凌晨1点执行一次：0 0 1 1*?
        *
        *每月最后一天23点执行一次：0 0 23 L*?
        *
        *每周星期六凌晨1点实行一次：0 0 1?*L
        *
        *在26分、29 分、33 分执行一次：0 26,29,33***?
        *
        *每天的0点、13 点、18 点、21 点都执行一次：0 0 0,13,18,21**?
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("schedule_setting")
public class ScheduleSetting extends Model<ScheduleSetting> {
    /**
     * 任务ID
     */
    @TableId(value = "job_id",type = IdType.ID_WORKER_STR)
    private String jobId;
    /**
     * bean名称
     */
    @TableField(value = "bean_name")
    private String beanName;
    /**
     * 方法名称
     */
    @TableField(value = "method_name")
    private String methodName;
    /**
     * 方法参数
     */
    @TableField(value = "method_params")
    private String methodParams;
    /**
     * cron表达式
     */
    @TableField(value = "cron_expression")
    private String cronExpression;
    /**
     * 状态（1正常 0暂停）
     */
    @TableField(value = "job_status")
    private Integer jobStatus;
    /**
     * 备注
     */
    @TableField(value = "remark")
    private String remark;
    /**
     * 创建时间
     */
    @TableField(value = "create_time")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TimeAt(value = "create_time")
    private LocalDateTime createTime;
}